package com.ihrm.domain.system;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author chentao
 */
public class UserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public UserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(String value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(String value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(String value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(String value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(String value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(String value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLike(String value) {
            addCriterion("id like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotLike(String value) {
            addCriterion("id not like", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<String> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<String> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(String value1, String value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(String value1, String value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andMobileIsNull() {
            addCriterion("mobile is null");
            return (Criteria) this;
        }

        public Criteria andMobileIsNotNull() {
            addCriterion("mobile is not null");
            return (Criteria) this;
        }

        public Criteria andMobileEqualTo(String value) {
            addCriterion("mobile =", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotEqualTo(String value) {
            addCriterion("mobile <>", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThan(String value) {
            addCriterion("mobile >", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileGreaterThanOrEqualTo(String value) {
            addCriterion("mobile >=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThan(String value) {
            addCriterion("mobile <", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLessThanOrEqualTo(String value) {
            addCriterion("mobile <=", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileLike(String value) {
            addCriterion("mobile like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotLike(String value) {
            addCriterion("mobile not like", value, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileIn(List<String> values) {
            addCriterion("mobile in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotIn(List<String> values) {
            addCriterion("mobile not in", values, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileBetween(String value1, String value2) {
            addCriterion("mobile between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andMobileNotBetween(String value1, String value2) {
            addCriterion("mobile not between", value1, value2, "mobile");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNull() {
            addCriterion("username is null");
            return (Criteria) this;
        }

        public Criteria andUsernameIsNotNull() {
            addCriterion("username is not null");
            return (Criteria) this;
        }

        public Criteria andUsernameEqualTo(String value) {
            addCriterion("username =", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotEqualTo(String value) {
            addCriterion("username <>", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThan(String value) {
            addCriterion("username >", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThanOrEqualTo(String value) {
            addCriterion("username >=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThan(String value) {
            addCriterion("username <", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLessThanOrEqualTo(String value) {
            addCriterion("username <=", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameLike(String value) {
            addCriterion("username like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotLike(String value) {
            addCriterion("username not like", value, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameIn(List<String> values) {
            addCriterion("username in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotIn(List<String> values) {
            addCriterion("username not in", values, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameBetween(String value1, String value2) {
            addCriterion("username between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andUsernameNotBetween(String value1, String value2) {
            addCriterion("username not between", value1, value2, "username");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion("password is null");
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion("password is not null");
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion("password =", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion("password <>", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion("password >", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion("password >=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion("password <", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion("password <=", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion("password like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion("password not like", value, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion("password in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion("password not in", values, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion("password between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion("password not between", value1, value2, "password");
            return (Criteria) this;
        }

        public Criteria andEnableStateIsNull() {
            addCriterion("enable_state is null");
            return (Criteria) this;
        }

        public Criteria andEnableStateIsNotNull() {
            addCriterion("enable_state is not null");
            return (Criteria) this;
        }

        public Criteria andEnableStateEqualTo(Integer value) {
            addCriterion("enable_state =", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateNotEqualTo(Integer value) {
            addCriterion("enable_state <>", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateGreaterThan(Integer value) {
            addCriterion("enable_state >", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("enable_state >=", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateLessThan(Integer value) {
            addCriterion("enable_state <", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateLessThanOrEqualTo(Integer value) {
            addCriterion("enable_state <=", value, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateIn(List<Integer> values) {
            addCriterion("enable_state in", values, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateNotIn(List<Integer> values) {
            addCriterion("enable_state not in", values, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateBetween(Integer value1, Integer value2) {
            addCriterion("enable_state between", value1, value2, "enableState");
            return (Criteria) this;
        }

        public Criteria andEnableStateNotBetween(Integer value1, Integer value2) {
            addCriterion("enable_state not between", value1, value2, "enableState");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdIsNull() {
            addCriterion("department_id is null");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdIsNotNull() {
            addCriterion("department_id is not null");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdEqualTo(String value) {
            addCriterion("department_id =", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdNotEqualTo(String value) {
            addCriterion("department_id <>", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdGreaterThan(String value) {
            addCriterion("department_id >", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdGreaterThanOrEqualTo(String value) {
            addCriterion("department_id >=", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdLessThan(String value) {
            addCriterion("department_id <", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdLessThanOrEqualTo(String value) {
            addCriterion("department_id <=", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdLike(String value) {
            addCriterion("department_id like", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdNotLike(String value) {
            addCriterion("department_id not like", value, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdIn(List<String> values) {
            addCriterion("department_id in", values, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdNotIn(List<String> values) {
            addCriterion("department_id not in", values, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdBetween(String value1, String value2) {
            addCriterion("department_id between", value1, value2, "departmentId");
            return (Criteria) this;
        }

        public Criteria andDepartmentIdNotBetween(String value1, String value2) {
            addCriterion("department_id not between", value1, value2, "departmentId");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryIsNull() {
            addCriterion("time_of_entry is null");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryIsNotNull() {
            addCriterion("time_of_entry is not null");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryEqualTo(Date value) {
            addCriterion("time_of_entry =", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryNotEqualTo(Date value) {
            addCriterion("time_of_entry <>", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryGreaterThan(Date value) {
            addCriterion("time_of_entry >", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryGreaterThanOrEqualTo(Date value) {
            addCriterion("time_of_entry >=", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryLessThan(Date value) {
            addCriterion("time_of_entry <", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryLessThanOrEqualTo(Date value) {
            addCriterion("time_of_entry <=", value, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryIn(List<Date> values) {
            addCriterion("time_of_entry in", values, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryNotIn(List<Date> values) {
            addCriterion("time_of_entry not in", values, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryBetween(Date value1, Date value2) {
            addCriterion("time_of_entry between", value1, value2, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andTimeOfEntryNotBetween(Date value1, Date value2) {
            addCriterion("time_of_entry not between", value1, value2, "timeOfEntry");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentIsNull() {
            addCriterion("form_of_employment is null");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentIsNotNull() {
            addCriterion("form_of_employment is not null");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentEqualTo(Integer value) {
            addCriterion("form_of_employment =", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentNotEqualTo(Integer value) {
            addCriterion("form_of_employment <>", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentGreaterThan(Integer value) {
            addCriterion("form_of_employment >", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentGreaterThanOrEqualTo(Integer value) {
            addCriterion("form_of_employment >=", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentLessThan(Integer value) {
            addCriterion("form_of_employment <", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentLessThanOrEqualTo(Integer value) {
            addCriterion("form_of_employment <=", value, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentIn(List<Integer> values) {
            addCriterion("form_of_employment in", values, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentNotIn(List<Integer> values) {
            addCriterion("form_of_employment not in", values, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentBetween(Integer value1, Integer value2) {
            addCriterion("form_of_employment between", value1, value2, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andFormOfEmploymentNotBetween(Integer value1, Integer value2) {
            addCriterion("form_of_employment not between", value1, value2, "formOfEmployment");
            return (Criteria) this;
        }

        public Criteria andWorkNumberIsNull() {
            addCriterion("work_number is null");
            return (Criteria) this;
        }

        public Criteria andWorkNumberIsNotNull() {
            addCriterion("work_number is not null");
            return (Criteria) this;
        }

        public Criteria andWorkNumberEqualTo(String value) {
            addCriterion("work_number =", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberNotEqualTo(String value) {
            addCriterion("work_number <>", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberGreaterThan(String value) {
            addCriterion("work_number >", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberGreaterThanOrEqualTo(String value) {
            addCriterion("work_number >=", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberLessThan(String value) {
            addCriterion("work_number <", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberLessThanOrEqualTo(String value) {
            addCriterion("work_number <=", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberLike(String value) {
            addCriterion("work_number like", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberNotLike(String value) {
            addCriterion("work_number not like", value, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberIn(List<String> values) {
            addCriterion("work_number in", values, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberNotIn(List<String> values) {
            addCriterion("work_number not in", values, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberBetween(String value1, String value2) {
            addCriterion("work_number between", value1, value2, "workNumber");
            return (Criteria) this;
        }

        public Criteria andWorkNumberNotBetween(String value1, String value2) {
            addCriterion("work_number not between", value1, value2, "workNumber");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementIsNull() {
            addCriterion("form_of_management is null");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementIsNotNull() {
            addCriterion("form_of_management is not null");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementEqualTo(String value) {
            addCriterion("form_of_management =", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementNotEqualTo(String value) {
            addCriterion("form_of_management <>", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementGreaterThan(String value) {
            addCriterion("form_of_management >", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementGreaterThanOrEqualTo(String value) {
            addCriterion("form_of_management >=", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementLessThan(String value) {
            addCriterion("form_of_management <", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementLessThanOrEqualTo(String value) {
            addCriterion("form_of_management <=", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementLike(String value) {
            addCriterion("form_of_management like", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementNotLike(String value) {
            addCriterion("form_of_management not like", value, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementIn(List<String> values) {
            addCriterion("form_of_management in", values, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementNotIn(List<String> values) {
            addCriterion("form_of_management not in", values, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementBetween(String value1, String value2) {
            addCriterion("form_of_management between", value1, value2, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andFormOfManagementNotBetween(String value1, String value2) {
            addCriterion("form_of_management not between", value1, value2, "formOfManagement");
            return (Criteria) this;
        }

        public Criteria andWorkingCityIsNull() {
            addCriterion("working_city is null");
            return (Criteria) this;
        }

        public Criteria andWorkingCityIsNotNull() {
            addCriterion("working_city is not null");
            return (Criteria) this;
        }

        public Criteria andWorkingCityEqualTo(String value) {
            addCriterion("working_city =", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityNotEqualTo(String value) {
            addCriterion("working_city <>", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityGreaterThan(String value) {
            addCriterion("working_city >", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityGreaterThanOrEqualTo(String value) {
            addCriterion("working_city >=", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityLessThan(String value) {
            addCriterion("working_city <", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityLessThanOrEqualTo(String value) {
            addCriterion("working_city <=", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityLike(String value) {
            addCriterion("working_city like", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityNotLike(String value) {
            addCriterion("working_city not like", value, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityIn(List<String> values) {
            addCriterion("working_city in", values, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityNotIn(List<String> values) {
            addCriterion("working_city not in", values, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityBetween(String value1, String value2) {
            addCriterion("working_city between", value1, value2, "workingCity");
            return (Criteria) this;
        }

        public Criteria andWorkingCityNotBetween(String value1, String value2) {
            addCriterion("working_city not between", value1, value2, "workingCity");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeIsNull() {
            addCriterion("correction_time is null");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeIsNotNull() {
            addCriterion("correction_time is not null");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeEqualTo(Date value) {
            addCriterion("correction_time =", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeNotEqualTo(Date value) {
            addCriterion("correction_time <>", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeGreaterThan(Date value) {
            addCriterion("correction_time >", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("correction_time >=", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeLessThan(Date value) {
            addCriterion("correction_time <", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeLessThanOrEqualTo(Date value) {
            addCriterion("correction_time <=", value, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeIn(List<Date> values) {
            addCriterion("correction_time in", values, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeNotIn(List<Date> values) {
            addCriterion("correction_time not in", values, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeBetween(Date value1, Date value2) {
            addCriterion("correction_time between", value1, value2, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andCorrectionTimeNotBetween(Date value1, Date value2) {
            addCriterion("correction_time not between", value1, value2, "correctionTime");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusIsNull() {
            addCriterion("in_service_status is null");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusIsNotNull() {
            addCriterion("in_service_status is not null");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusEqualTo(Integer value) {
            addCriterion("in_service_status =", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusNotEqualTo(Integer value) {
            addCriterion("in_service_status <>", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusGreaterThan(Integer value) {
            addCriterion("in_service_status >", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("in_service_status >=", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusLessThan(Integer value) {
            addCriterion("in_service_status <", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusLessThanOrEqualTo(Integer value) {
            addCriterion("in_service_status <=", value, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusIn(List<Integer> values) {
            addCriterion("in_service_status in", values, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusNotIn(List<Integer> values) {
            addCriterion("in_service_status not in", values, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusBetween(Integer value1, Integer value2) {
            addCriterion("in_service_status between", value1, value2, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andInServiceStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("in_service_status not between", value1, value2, "inServiceStatus");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNull() {
            addCriterion("company_id is null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIsNotNull() {
            addCriterion("company_id is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyIdEqualTo(String value) {
            addCriterion("company_id =", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotEqualTo(String value) {
            addCriterion("company_id <>", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThan(String value) {
            addCriterion("company_id >", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdGreaterThanOrEqualTo(String value) {
            addCriterion("company_id >=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThan(String value) {
            addCriterion("company_id <", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLessThanOrEqualTo(String value) {
            addCriterion("company_id <=", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdLike(String value) {
            addCriterion("company_id like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotLike(String value) {
            addCriterion("company_id not like", value, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdIn(List<String> values) {
            addCriterion("company_id in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotIn(List<String> values) {
            addCriterion("company_id not in", values, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdBetween(String value1, String value2) {
            addCriterion("company_id between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyIdNotBetween(String value1, String value2) {
            addCriterion("company_id not between", value1, value2, "companyId");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNull() {
            addCriterion("company_name is null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIsNotNull() {
            addCriterion("company_name is not null");
            return (Criteria) this;
        }

        public Criteria andCompanyNameEqualTo(String value) {
            addCriterion("company_name =", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotEqualTo(String value) {
            addCriterion("company_name <>", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThan(String value) {
            addCriterion("company_name >", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameGreaterThanOrEqualTo(String value) {
            addCriterion("company_name >=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThan(String value) {
            addCriterion("company_name <", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLessThanOrEqualTo(String value) {
            addCriterion("company_name <=", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameLike(String value) {
            addCriterion("company_name like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotLike(String value) {
            addCriterion("company_name not like", value, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameIn(List<String> values) {
            addCriterion("company_name in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotIn(List<String> values) {
            addCriterion("company_name not in", values, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameBetween(String value1, String value2) {
            addCriterion("company_name between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andCompanyNameNotBetween(String value1, String value2) {
            addCriterion("company_name not between", value1, value2, "companyName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameIsNull() {
            addCriterion("department_name is null");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameIsNotNull() {
            addCriterion("department_name is not null");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameEqualTo(String value) {
            addCriterion("department_name =", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameNotEqualTo(String value) {
            addCriterion("department_name <>", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameGreaterThan(String value) {
            addCriterion("department_name >", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameGreaterThanOrEqualTo(String value) {
            addCriterion("department_name >=", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameLessThan(String value) {
            addCriterion("department_name <", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameLessThanOrEqualTo(String value) {
            addCriterion("department_name <=", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameLike(String value) {
            addCriterion("department_name like", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameNotLike(String value) {
            addCriterion("department_name not like", value, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameIn(List<String> values) {
            addCriterion("department_name in", values, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameNotIn(List<String> values) {
            addCriterion("department_name not in", values, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameBetween(String value1, String value2) {
            addCriterion("department_name between", value1, value2, "departmentName");
            return (Criteria) this;
        }

        public Criteria andDepartmentNameNotBetween(String value1, String value2) {
            addCriterion("department_name not between", value1, value2, "departmentName");
            return (Criteria) this;
        }

        public Criteria andLevelIsNull() {
            addCriterion("level is null");
            return (Criteria) this;
        }

        public Criteria andLevelIsNotNull() {
            addCriterion("level is not null");
            return (Criteria) this;
        }

        public Criteria andLevelEqualTo(String value) {
            addCriterion("level =", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotEqualTo(String value) {
            addCriterion("level <>", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelGreaterThan(String value) {
            addCriterion("level >", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelGreaterThanOrEqualTo(String value) {
            addCriterion("level >=", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelLessThan(String value) {
            addCriterion("level <", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelLessThanOrEqualTo(String value) {
            addCriterion("level <=", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelLike(String value) {
            addCriterion("level like", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotLike(String value) {
            addCriterion("level not like", value, "level");
            return (Criteria) this;
        }

        public Criteria andLevelIn(List<String> values) {
            addCriterion("level in", values, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotIn(List<String> values) {
            addCriterion("level not in", values, "level");
            return (Criteria) this;
        }

        public Criteria andLevelBetween(String value1, String value2) {
            addCriterion("level between", value1, value2, "level");
            return (Criteria) this;
        }

        public Criteria andLevelNotBetween(String value1, String value2) {
            addCriterion("level not between", value1, value2, "level");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoIsNull() {
            addCriterion("staff_photo is null");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoIsNotNull() {
            addCriterion("staff_photo is not null");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoEqualTo(String value) {
            addCriterion("staff_photo =", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoNotEqualTo(String value) {
            addCriterion("staff_photo <>", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoGreaterThan(String value) {
            addCriterion("staff_photo >", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoGreaterThanOrEqualTo(String value) {
            addCriterion("staff_photo >=", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoLessThan(String value) {
            addCriterion("staff_photo <", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoLessThanOrEqualTo(String value) {
            addCriterion("staff_photo <=", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoLike(String value) {
            addCriterion("staff_photo like", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoNotLike(String value) {
            addCriterion("staff_photo not like", value, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoIn(List<String> values) {
            addCriterion("staff_photo in", values, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoNotIn(List<String> values) {
            addCriterion("staff_photo not in", values, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoBetween(String value1, String value2) {
            addCriterion("staff_photo between", value1, value2, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andStaffPhotoNotBetween(String value1, String value2) {
            addCriterion("staff_photo not between", value1, value2, "staffPhoto");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionIsNull() {
            addCriterion("time_of_dimission is null");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionIsNotNull() {
            addCriterion("time_of_dimission is not null");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionEqualTo(Date value) {
            addCriterion("time_of_dimission =", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionNotEqualTo(Date value) {
            addCriterion("time_of_dimission <>", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionGreaterThan(Date value) {
            addCriterion("time_of_dimission >", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionGreaterThanOrEqualTo(Date value) {
            addCriterion("time_of_dimission >=", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionLessThan(Date value) {
            addCriterion("time_of_dimission <", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionLessThanOrEqualTo(Date value) {
            addCriterion("time_of_dimission <=", value, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionIn(List<Date> values) {
            addCriterion("time_of_dimission in", values, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionNotIn(List<Date> values) {
            addCriterion("time_of_dimission not in", values, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionBetween(Date value1, Date value2) {
            addCriterion("time_of_dimission between", value1, value2, "timeOfDimission");
            return (Criteria) this;
        }

        public Criteria andTimeOfDimissionNotBetween(Date value1, Date value2) {
            addCriterion("time_of_dimission not between", value1, value2, "timeOfDimission");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}